////////////////////////////////////////////////////////////////////////////////
//
//  FLEX USER GROUP HOKURIKU
//  Copyright 2009 Flex User Group Hokuriku
//  All Rights Reserved.
// 
//  NOTICE: Flex User Group Hokuriku permits you to use, 
//  modify, and distribute this file 
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package net.fxug.hokuriku.chocolat.events
{
    import flash.events.Event;

    /**
     * 投票イベント
     * @author hikaruworld
     */
    public class VoteEvent extends Event
    {
        /**
         * へぇイベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>tweetArray</td><td>つぶやきの検索結果で「へぇ」一覧を返す</td></tr>
         * </table>
         *
         * @eventType goodEvent
         */
        public static const GOOD_EVENT:String = "goodEvent";
        /**
         * ぶぅイベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>tweetArray</td><td>つぶやきの検索結果で「ぶぅ」一覧を返す</td></tr>
         * </table>
         *
         * @eventType badEvent
         */
        public static const BAD_EVENT:String = "badEvent";
        /**
         * 失敗イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>info</td><td>障害内容</td></tr>
         * </table>
         * @eventType failedEvent
         */
        public static const FAILED_EVENT:String = "failedEvent";
        /**
         * HTTPステータスイベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>info</td><td>HTTP_STATUS情報</td></tr>
         * </table>
         * @eventType statusEvent
         */
        public static const STATUS_EVENT:String = "statusEvent";

        /**
         * つぶやき内容の一覧
         * GOOD_EVENT,BAD_EVENTの場合はそれぞれのつぶやき内容一覧が設定される。
         * FAILED_EVENT,STATUS_EVENTの場合はnull値が設定される。
         */
        [ArrayElementType("net.fxug.hokuriku.chocolat.model.VoteData")]
        private var _tweetArray:Array;
        /**
         * Event情報
         * GOOD_EVENT,BAD_EVENTの場合はnull値が設定される。
         * FAILED_EVENT,STATUS_EVENTの場合はイベント情報が設定される。
         */
        private var _info:String;

        /**
         * コンストラクタ
         * @param tweets つぶやき内容の一覧
         * @inheritDoc flash.events.Event#Event();
         */
        public function VoteEvent(type:String, tweets:Array = null, info:String = null, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super(type, bubbles, cancelable);

            this._tweetArray = tweets;
            this._info = info;
        }

		/**
		 * @inheritDoc flash.events.Event#clone()
		 */
        override public function clone():Event
        {
            return new VoteEvent(type, this._tweetArray, this.info, bubbles, cancelable);
        }

        //---------------------------------------------------------------------
        // IDEによる自動生成
        //---------------------------------------------------------------------
        public function get tweetArray():Array
        {
            return _tweetArray;
        }

		/**
		 * @private
		 */
        public function get info():String
        {
            return _info;
        }
    }
}